home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / dl_serie / updates / 159 / source / beispiel.c next >
C/C++ Source or Header  |  1995-11-25  |  2KB  |  112 lines

  1. #include <stdio.h>
  2. #include <aes.h>
  3. #include <tos.h>
  4. #include <string.h>
  5. #include "fdmproto.h"
  6. #include "slectric.h"
  7.  
  8. int GetCookie (long cookie, void *value)
  9. {
  10.     long old_stack, *jar;
  11.     
  12.     old_stack = Super (NULL);
  13.     jar = *((long **) 0x5a0l);
  14.     Super ((void *) old_stack);
  15.     
  16.     if (jar)
  17.     {
  18.         while (*jar)
  19.         {
  20.             if (*jar == cookie)
  21.             {
  22.                 if (value)
  23.                     *(long *)value = *++jar;
  24.                 return 1;
  25.             }
  26.             jar += 2;
  27.         }
  28.     }
  29.     return 0;
  30. }
  31.  
  32. void GetCurrPath (char *p, char *ext)
  33. {    int drv;
  34.  
  35.     drv = Dgetdrv ();
  36.     *p++ = drv + 'A';
  37.     *p++ = ':';
  38.     Dgetpath (p, 0);
  39.     p += strlen (p);
  40.     if (-1[p] != '\\')
  41.         *p++ = '\\';
  42.     strcpy (p,ext);
  43. }
  44.  
  45. int main (void)
  46. {
  47.     int ok;
  48.     char buf[sizeof (Fdm_Str) + 256], file[128] = "", alert[512];
  49.     Fdm_Str *fdm = (Fdm_Str *)buf;
  50.     char *path = buf + sizeof (Fdm_Str);
  51.     SLCT_STR *slct_str;
  52.     
  53.     if (appl_init () < 0) return -1;
  54.  
  55.     if (!GetCookie ('FSEL',&slct_str) || slct_str->version < 0x200)
  56.     {
  57.         form_alert (1, "[1][Kein Freedom da.][Ok]");
  58.         goto tschuessi;
  59.     }
  60.  
  61.     GetCurrPath (path, "*.*");
  62.     strcpy (strchr (path,0)+1, "?Fdm");
  63.     memset (fdm,0,sizeof (Fdm_Str));
  64.     fdm->magic = '?Fdm';
  65.     fdm->maxsel = 5;
  66.  
  67.     wind_update (BEG_UPDATE);
  68.     fsel_exinput (path,file,&ok,"*Der* Fileselektor");
  69.     wind_update (END_UPDATE);
  70.  
  71.     if (fdm->magic != '!Fdm')
  72.     {
  73.         if (ok)
  74.             sprintf (alert,
  75.                 "[0][Freedom-Unterstützung fehlgeschlagen!|"
  76.                 "Pfad und ausgewähltes File:|"
  77.                 "%s|%s|][Ok]",path,file);
  78.         else
  79.             sprintf (alert,
  80.                 "[0][Freedom-Unterstützung fehlgeschlagen!|"
  81.                 "Abbruch gedrückt!|][Ok]");
  82.     }
  83.     else
  84.     {
  85.         int msg[8];
  86.         char *files;
  87.  
  88.         do
  89.             evnt_mesag (msg);
  90.         while (msg[0] != FILE_SELECTED);
  91.         strcpy (path, *(char **)&msg[4]);
  92.         files = *(char **)&msg[6];
  93.         ok = files != NULL;
  94.     
  95.         if (ok)
  96.             sprintf (alert,
  97.                 "[0][Freedom-Unterstützung erfolgreich!|"
  98.                 "Pfad und ausgewählte Files:|"
  99.                 "%s|%s|][Ok]",path,files);
  100.         else
  101.             sprintf (alert,
  102.                 "[0][Freedom-Unterstützung erfolgreich!|"
  103.                 "Abbruch gedrückt!|][Ok]");
  104.     }
  105.  
  106.     form_alert (1,alert);
  107.  
  108. tschuessi:
  109.     appl_exit ();
  110.     return 0;
  111. }
  112.